package com.hwy.widget.xx_ui

import android.os.Bundle
import android.util.TypedValue
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.hwy.widget.R
import com.hwy.widget.utils.DisplayUtil
import com.hwy.widget.xx_ui.widget.FlowLayout

/**
 * 流式布局
 */
class FlowLayoutActivity : AppCompatActivity() {

    private val dataList by lazy {
        ArrayList<String>().apply {
            add("美团")
            add("腾讯控股")
            add("阿里巴巴-SW")
            add("小米集团-W")
            add("快手-W")
            add("中兴通讯")
            add("中国恒大")
            add("融创中国")
            add("中铝国际")
            add("农夫山泉")
            add("信达生物")
            add("中芯国际")
            add("中国移动")
            add("京东集团")
            add("商汤-W")
            add("中国平安")
            add("恒大汽车")
            add("吉利汽车")
            add("华润置地")
            add("碧桂园")
            add("汇通达网络")
            add("紫荆矿业")
            add("江山集团")
            add("裕田中国")
            add("万嘉集团")
            add("中科生物")
            add("首钢资源")
            add("中国华星")
            add("金汇教育")
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_flow_layout)

        findViewById<FlowLayout>(R.id.flow_layout)?.run {
            setAdapter(object : FlowLayout.Adapter {
                override fun getCount(): Int {
                    return dataList.size
                }

                override fun getView(position: Int): View {
                    return TextView(context).apply {
                        setPadding(
                            DisplayUtil.dpToPx(8),
                            DisplayUtil.dpToPx(3),
                            DisplayUtil.dpToPx(8),
                            DisplayUtil.dpToPx(3)
                        )
                        setBackgroundResource(R.drawable.bg_flow_layout_item_shape)
                        gravity = Gravity.CENTER
                        setTextSize(
                            TypedValue.COMPLEX_UNIT_PX,
                            resources.getDimension(R.dimen.dimens_midden)
                        )
                        setTextColor(resources.getColor(R.color.color_gray_3))
                        text = dataList[position]
                        layoutParams = FrameLayout.LayoutParams(
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT
                        )
                    }
                }

            })
        }

    }
}